const { ipcMain, BrowserWindow, globalShortcut } = require('electron')
const path = require('path')

// 桌面歌词组件渲染进程
const desktopLyricFn = () => {
    // 接收渲染进程传递的事件, 注册桌面歌词组件的子渲染进程, 并接收参数作为其默认展示的坐标位置
    // 参数一: 主进程事件对象
    // 参数二: 渲染进程传递的参数
    ipcMain.on('event-win-desktopLyric', (event, value) => {
        const desktopWindow = new BrowserWindow({
            width: 650,
            height: 150,
            x: value.x,
            y: value.y + 60,
            show: false,
            frame: false,
            transparent: true,  // 窗口透明背景色
            isMultiWindow: false,  //是否支持多开窗口 (如果为false，当窗体存在，再次创建不会新建一个窗体 只focus显示即可，，如果为true，即使窗体存在，也可以新建一个)
            webPreferences: {
                preload: path.join(__dirname, '../preload/desktopLyricPreload.ts')
            }
        })
        // 优雅打开该窗口
        desktopWindow.on('ready-to-show', () => desktopWindow.show())
        // 设定加载的文件
        desktopWindow.loadURL(path.join(__dirname, '../src/view/desktopLyric/index.html'))
        // 注册开发者工具快捷键
        globalShortcut.register('Ctrl+Shift+D', () => desktopWindow.webContents.openDevTools())
        // 关闭桌面窗口
        closeDesktopLyricFn(desktopWindow)
    })
}
// 关闭桌面歌词的渲染进程窗口
const closeDesktopLyricFn = (desktopWindow) => ipcMain.on('event-win-closeDesktopLyric', () => desktopWindow.hide())

module.exports = desktopLyricFn
